home *** CD-ROM | disk | FTP | other *** search
- 10 REM BASICS
- 11 :
- 900 POKE 53265,PEEK(53265)AND239:REM TURN OFF DISPLAY SCREEN
- 910 POKE56578,PEEK(56578)OR3:REM SWITCH CIA
- 920 POKE56576,(PEEK(56576)AND252)OR3:REM SET FOR BANK 0
- 930 POKE53272,(PEEK(53272)AND15)OR16:REM SET SCREEN LOCATION
- 940 POKE53272,(PEEK(53272)AND240)OR4:REM SET BIT MAP LOCATION
- 950 POKE 53265,PEEK(53265)AND223:REM TURN OFF MULTICOLOR
- 960 POKE53270,PEEK(53270)AND239:REM TURN OFF BIT MAP
- 970 POKE 49191,3:POKE49194,4:POKE49195,16
- 1000 :
- 1010 REM KOALAPAD FUNDAMENTALS
- 1020 :
- 1030 CLR
- 1040 REM
- 1050 GOSUB 21200:REM DEFINE VARIABLE NAMES
- 1055 POKE S1,6:POKE S2,6:POKEM1,255:POKEM2,255:REM SET TABLET VALUES TO DEFAULT
- 1060 POKE LO,1:POKE LE,1:POKE SN,0
- 1070 POKE CB,13:POKE CS,12
- 1080 PRINTCHR$(144)
- 1090 PRINTCHR$(147):PRINT" BASICS ":PRINT:PRINT
- 1100 POKE 53265,PEEK(53265)OR16
- 1110 PRINT" TABRAW":PRINT
- 1120 PRINT" DEBOUNCE":PRINT
- 1130 PRINT" FILTER":PRINT
- 1140 PRINT" PADLOCK":PRINT
- 1150 PRINT" SMOOTH":PRINT
- 1160 PRINT" SCALE":PRINT
- 1170 PRINT" MAIN MENU":PRINT
- 1180 PRINT:PRINT:PRINT:PRINT:PRINT" PRESS LEFT BUTTON TO MAKE SELECTION"
- 1190 REM
- 1195 POKE T3,0:POKET3+1,0
- 1200 SYS TE
- 1210 POKE T3,1
- 1220 POKE S1,3:POKES2,3:REM SETS TABLET MINIMUMS
- 1230 POKE H1,0:POKEH2,0:POKEH3,0:POKEH4,0
- 1240 POKE XS,9:POKE XF,9:POKE YS,4:POKE YF,16
- 1250 SYS TE
- 1260 Y=PEEK(YN)
- 1270 N=(Y-2)/2:IFN<>INT(N)THENN=0
- 1280 IF N<1 THEN 1250
- 1290 IF N>7 THEN 1250
- 1295 IF PEEK(LP)=1 THEN 1320
- 1300 GOSUB 21900:ON SW GOTO 1320,1310,1320,1060,1060,9000
- 1310 GOTO 1250
- 1320 ON N GOTO 2000,3000,4000,6000,7000,8000,9000
- 1330 :
- 2000 REM*******************************
- 2005 REM* READ RAW DATA *
- 2010 REM********************************
- 2015 REM
- 2020 :
- 2025 REM* THIS SECTION READS IN RAW DATA FROM THE TABLET. X,Y, LEFT, AND *
- 2030 REM* RIGHT BUTTONS ARE READ BY PEEKING THEIR MEMORY LOCATIONS. X AND *
- 2035 REM* Y ARE VALUES BETWEEN 0-255. BUTTON VALUES ARE 1=ON, 0=OFF. *
- 2040 :
- 2045 REM
- 2050 REM
- 2055 :
- 2060 REM* MAIN BODY OF PROGRAM *
- 2065 :
- 2070 GOSUB 2135:REM INITIALIZE VARIABLE LOCATIONS *
- 2075 GOSUB 2420:REM PRINT TEXT *
- 2080 ON SW GOTO 2085,1000,2085,1000,1000,9000
- 2085 GOSUB 2200:REM PRINT TITLES ON SCREEN *
- 2090 GOSUB 2285:REM GET TABLET DATA AND DISPLAY IT *
- 2095 ON SW GOTO 2100,2100,2100,2070,1000,9000
- 2100 GOTO 1060
- 2105 :
- 2110 REM
- 2115 REM
- 2120 :
- 2125 REM THIS SECTIONS SETS ALL CONSTANTS, VARIABLES, AND LOCATIONS. *
- 2130 :
- 2135 TA=49328 :REM START OF TABLET READ ROUTINE *
- 2140 RX=49152 :REM LOCATION OF RAW X *
- 2145 RY=49154 :REM LOCATION OF RAW Y *
- 2150 B1=49156 :REM LOCATION OF B1 (LEFT BUTTON) *
- 2155 B2=49157 :REM LOCATION OF B2 (RIGHT BUTTON) *
- 2160 N=0:QQ$="A" :REM N COUNTS AMOUNT B2 HELD DOWN *
- 2165 RETURN :REM *
- 2170 :
- 2175 REM
- 2180 REM
- 2185 :
- 2190 REM DISPLAY TITLES AND HEADINGS ON THE SCREEN *
- 2195 :
- 2200 POKE CS,0:PRINT CHR$(158) :REM SET COLORS *
- 2205 PRINT CHR$(147) :REM CLEAR SCREEN *
- 2210 PRINT:PRINT" READ RAW DATA" :REM PRINT TITLE *
- 2215 PRINT:PRINT:PRINT :REM SKIP 3 LINES *
- 2220 PRINT" X VALUE Y VALUE" :REM PRINT XVALUE, Y VALUE *
- 2225 PRINT:PRINT:PRINT:PRINT:PRINT :REM SKIP 5 LINES *
- 2230 PRINT" LEFT BUTTON RIGHT BUTTON" :REM BUTTON TITLES *
- 2235 PRINT:PRINT" -B1- -B2-" :REM *
- 2240 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT :REM *
- 2245 PRINT"TO EXIT, HOLD DOWN RIGHT BUTTON (B2)" :REM *
- 2250 RETURN :REM *
- 2255 :
- 2260 REM
- 2265 REM
- 2270 :
- 2275 REM* GET RAW DATA FROM TABLET AND DISPLAY IT ON THE SCREEN *
- 2280 :
- 2285 SYS TA :REM CALL READ RAW DATA ROUTINE *
- 2290 X=PEEK(RX):Y=PEEK(RY) :REM BET X,Y VALUES *
- 2295 V1=PEEK(B1):V2=PEEK(B2) :REM GET BUTTON VALUES *
- 2300 VT=7:GOSUB 2395:REM GO TO 7TH ROW *
- 2305 PRINT" ":REM ERASE PREVIOUS X,Y *
- 2310 VT=7:GOSUB 2395:REM *
- 2315 PRINT" ";X :REM PRINT X *
- 2320 VT=7:GOSUB 2395:REM *
- 2325 PRINT,," ";Y :REM PRINT Y *
- 2330 VT=15:GOSUB 2395:REM *
- 2335 PRINT" ";V1," ";V2 :REM PRINT BUTTON VALUES *
- 2340 GOSUB 21900
- 2345 ON SW GOTO 2350,2350,2410,2410,2410,2410
- 2350 IF N=5 THEN RETURN :REM RETURN TO MAIN PROGRAM *
- 2355 IF V2=1 THEN N=N+1:(null) TO 2285:REM CHECK IF B2 IS HELD DOWN *
- 2360 N=0:(null) TO 2285:REM GET NEXT TABLET VALUES *
- 2365 :
- 2370 REM
- 2375 REM
- 2380 :
- 2385 REM* VTAB DOES VERTICAL TABBING *
- 2390 :
- 2395 PRINT CHR$(19) :REM SENDS CURSOR TO UPPER LEFT *
- 2400 POKE 214,VT :REM SETS CURSOR LINE NUMBER *
- 2405 PRINT :REM ACTIVATES CURSOR POSITION *
- 2410 RETURN :REM *
- 2415 :
- 2420 REM
- 2425 REM*************TEXT SECTION**********************************************
- 2430 REM
- 2435 POKE CB,0:POKE CS,0:PRINT"[158]"
- 2440 PRINTCHR$(147):PRINT" READ RAW DATA":PRINT:PRINT
- 2445 PRINT"THIS MODULE READS 'RAW' DATA FROM THE"
- 2450 PRINT"TABLET: HORIZONTAL POSITION (X),"
- 2455 PRINT"VERTICAL POSITION (Y), AND THE STATE OF"
- 2460 PRINT"BOTH BUTTONS.":PRINT
- 2465 PRINT"SLIDE YOUR FINGER AROUND THE TABLET,"
- 2470 PRINT"AND PRESS BUTTONS TO SEE THE VALUES"
- 2475 PRINT"CHANGE.":PRINT
- 2480 PRINT"YOU WILL SELDOM NEED TO CALL THIS"
- 2485 PRINT"MODULE DIRECTLY. NORMALLY YOU SHOULD "
- 2490 PRINT"GET DATA THROUGH 'SMOOTH'.
- 2495 [153]:[153]:[153]:[153]:[153]
- 2500 [153]"PRESS LEFT BUTTON TO CONTINUE"
- 2505 [141] 21900:[139]SW[178]0 [167] 2505
- 2510 [142]
- 2515 :
- 3000 [143] *************************************
- 3010 [143] * KOALAPAD SWITCH DEBOUNCE (DBNC) *
- 3020 [143] *************************************
- 3030 [143]
- 3040 :
- 3050 [143] * THIS PROGRAM DISPLAYS THE CONDITIONS OF THE KOALAPAD BUTTONS WITH *
- 3060 [143] * AND WITHOUT THE DEBOUNCE ROUTINE. THE RAW BUTTONS ARE AT 49156 *
- 3070 [143] * AND 49157. THE BUTTON PRESSED STATUS IS IN 49161 AND 49162. THE *
- 3080 [143] * BUTTON RELEASED STATUS IS IN 49159 AND 49160. YOU MUST READ THE *
- 3090 [143] * PAD BEFORE USING THIS ROUTINE. *
- 3100 :
- 3110 [143]
- 3120 TA[178]49328 :[143] START OF KOALAPAD READ ROUTINE
- 3130 DE[178]49331 :[143] START OF DEBOUNCE ROUTINE
- 3140 B1[178]49156:B2[178]49157 :[143] LOCATIONS OF RAW BUTTON DATA
- 3150 LP[178]49161:RP[178]49162: :[143] LOCATION OF PRESSED BUTTONS
- 3160 LD[178]49159:RD[178]49160 :[143] LOCATIONS OF DEBOUNCED BUTTONS
- 3170 [143]
- 3180 :
- 3190 [143] START OF DEBOUNCE PROGRAM - SET UP SCREEN
- 3200 [143]
- 3210 [153][199](147)
- 3220 [141] 3660:[143] TEXT
- 3230 [145]SW [137] 3240,1000,3240,1000,1000,9000
- 3240 [151] CS,3:[153][199](144):[151] CB,11
- 3250 [153][199](147) :[143] CLEAR SCREEN
- 3260 [153]:[153]" KOALAPAD SWITCH DEBOUNCE"
- 3270 [153]:[153]
- 3280 [153]" LEFT RIGHT"
- 3290 [153]" BUTTON BUTTON "
- 3300 [153]:[153]
- 3310 [153]" NORMAL NORMAL"
- 3320 [153]" (49156) (49157)"
- 3330 [153]:[153]:[153]" PRESSED PRESSED"
- 3340 [153]" (49161) (49162)"
- 3350 [153]:[153]
- 3360 [153]" RELEASED RELEASED "
- 3370 [153]" (49159) (49160)"
- 3380 [153]:[153]:[153]:[153]
- 3390 [153]"TO EXIT, PRESS AND HOLDWAIT RIGHT BUTTON"
- 3400 [143]
- 3410 :
- 3420 [143] READ SWITCHES AND DISPLAY BUTTONS
- 3430 [143]
- 3440 [158] TA :[143] READ TABLET
- 3450 [158] DE :[143] CALL DEBOUNCE ROUTINE
- 3460 V1[178][194](B1):V2[178][194](B2) :[143] READ NORMAL BUTTONS
- 3470 P1[178][194](LP):P2[178][194](RP) :[143] READ PRESSED BUTTONS
- 3480 D1[178][194](LD):D2[178][194](RD) :[143] READ DEBOUNCED BUTTONS
- 3490 [153][199](19):[151] 214,10:[153] :[143] ADVANCE CURSOR TO LINE 10
- 3500 [153]," ";V1," ";V2 :[143] PRINT NORMAL BUTTONS
- 3510 [153][199](19):[151] 214,14:[153] :[143] ADVANCE CURSOR TO LINE 14
- 3520 [153]," ";P1," ";P2 :[143] PRINT NORMAL BUTTONS
- 3530 [153][199](19):[151]214,18:[153] :[143] ADVANCE CURSOR TO LINE 18
- 3540 [153]" CMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
- 3550 [153]," ";D1," ";D2 :[143] PRINT DEBOUNCED VALUES
- 3560 [129] CV[178]1 [164]10
- 3570 [161] QQ$:[139] QQ$[179][177]"" [167] 3590
- 3580 [130] CV:[137] 3610
- 3590 SW[178][198](QQ$)[171]132:[139] SW[179]0 [167] SW[178]0
- 3600 [145] SW [137] 1000,3120,1000,9000
- 3610 [139] N[178]6 [167] [137] 1060:[143] N=NUMBER OF TIMES B2 HELD DOWN
- 3620 [139] V2[178]1 [167] N[178]N[170]1:[203] [164] 3440:[143] ADVANCE N IF V2 HELD DOWN
- 3630 N[178]0:[203] [164] 3440:[143] SET N=0 IF B2 RELEASED
- 3640 [128]
- 3650 :
- 3660 [153][199](147):[153]" KOALAPAD DEBOUNCE":[153]:[153]
- 3670 [153]" DEBOUNCE READS IN THE SWITCHES"
- 3680 [153]"AND SEPARATES THEIR CONDITION INTO "
- 3690 [153]"THREE DISTINCT STATES. THE STATES ARE:":[153]
- 3700 [153]" 1) SWITCH JUST PRESSED."
- 3710 [153]" 2) SWITCH HELD DOWN."
- 3720 [153]" 3) SWITCH JUST RELEASED.":[153]
- 3730 [153]" THIS ALLOWS YOU TO TAKE DIFFERENT "
- 3740 [153]"ACTIONS ON DIFFERING SWITCH CONDITIONS.":[153]
- 3750 [153]" THESE THREE STATES ARE STORED FOR EACH"
- 3760 [153]"SWITCH, GIVING A TOTAL OF SIX DIFFERENT"
- 3770 [153]"LOCATIONS WHICH STORE SWITCH DATA.":[153]
- 3780 [153]" DEBOUNCE IS AUTOMATICALLY CALLED FROM"
- 3790 [153]"SMOOTH.":[153]:[153]
- 3800 [153]"PRESS LEFT BUTTON TO CONTINUE"
- 3810 [141] 21900:[139] SW[178]0 [167] 3810
- 3820 [153][199](147)
- 3830 [142]
- 3840 :
- 4000 [143]********************************
- 4010 [143]* FILTER *
- 4020 [143]********************************
- 4030 [143]
- 4040 :
- 4050 [143]* THE DELTA FILTER IS A VARIABLE SPEED FILTER ROUTINE. THE ROUTINE *
- 4060 [143]* FILTERS OUT VALUES GREATER THEN THE PREVIOUS VELOCITY PLUS DELTA. *
- 4070 [143]* YOU CAN SET DELTA TO ANY VALUE FROM 0-255 BY POKING 49173. *
- 4080 :
- 4090 [143]
- 4100 [151] CS,11:[153] [199](159) :[143] SET COLORS
- 4110 FI[178]49334:DE[178]49331 :[143] START OF DELTA FILTER ROUTINE
- 4120 [141] 4570:[143] GET TEXT
- 4130 [145] SW [137] 4140,1000,4140,1000,1000,9000
- 4140 [141] 4780:[143] GET FILTER LIMIT
- 4150 [145] SW [137] 4160,4120,4160,4120,1000,9000
- 4160 FX[178]49168:FY[178]49169 :[143] FILTERED X, FILTERED Y
- 4170 UX[178]49172:UY[178]49173 :[143] UNFILTERED X, UNFILTERED Y
- 4180 [143]
- 4190 [143] PRINT SCREEN
- 4200 [143]
- 4210 [153] [199](147)
- 4220 [153]:[153]" FILTER LIMIT = ";FV:[143] PRINT FILTER VALUE
- 4230 [153]:[153]:[153]
- 4240 [153]" FILTERED X FILTERED Y"
- 4250 [153]:[153]:[153]:[153]:[153]
- 4260 [151] 214,11:[153]:[153]" PREVIOUS X PREVIOUS Y"
- 4270 [153]:[153]
- 4280 [153]:[153]:[153]:[153]:[153]:[153]:[153]
- 4290 [153]"TO EXIT, PRESS DOWN LEFT BUTTON"
- 4300 [143]
- 4305 F6[178]0
- 4310 [158] FI:[158] DE :[143] CALL DELTA FILTER ROUTINE & DEBOUNCE
- 4320 X[178][194](FX):Y[178][194](FY) :[143] GET FX,FY VALUES
- 4330 [139] F6[178]0 [167] F6[178]1:[137] 4350
- 4340 [139](([194](UX)[179][177]GX)[176]([194](UY)[179][177]GY))[167] [137] 4490
- 4350 GX[178][194](UX):GY[178][194](UY) :[143] GET BAD VALUES
- 4360 V1[178][194](B1):V2[178][194](B2) :[143] GET BUTTON VALUES
- 4370 [153][199](19):[151] 214,7:[153] :[143] GO TO 7TH ROW
- 4380 [153]" ":[143] ERASE PREVIOUS X,Y
- 4390 [153] [199](19):[151] 214,7:[153]
- 4400 [153]" ";X :[143] PRINT X
- 4410 [153][199](19):[151] 214,7:[153]
- 4420 [153],," ";Y :[143] PRINT Y
- 4430 [141] 21900
- 4440 [145] SW [137] 1060,4140,1060,4140,1000,9000
- 4450 [203] [164] 4310:[143] GET NEXT TABLET VALUES
- 4460 :
- 4470 [143] DISPLAY MESSAGE WHEN FILTER LIMIT IS EXCEEDED
- 4480 :
- 4490 [151] 214,11:[153]:[153]" PREVIOUS X PREVIOUS Y"
- 4500 [153][199](19):[151] 214,13:[153]
- 4510 [153]" ";[194](UX)," ";[194](UY):[143] PRINT UNFILTERED VALUES
- 4520 [153]:[153]:[153]"OOPS, THE VALUE EXCEEDED THE LIMIT!":[153]
- 4525 [153]:[153]:[153]
- 4530 [153]"PRESS THE LEFT BUTTON TO CONTINUE"
- 4540 [141] 21900:F6[178]0
- 4550 [145] SW [137] 4200,4140,4200,4140,1000,9000
- 4560 [137] 4540
- 4570 [143]************INSTRUCTIONS**********
- 4580 [143]
- 4590 [153][199](147)
- 4600 [153]" FILTER":[153]
- 4610 [153]" THE FILTER MODULE CHECKS THE DISTANCE"
- 4620 [153]"BETWEEN OLD AND NEW POINTS, AND"
- 4630 [153]"REJECTS NEW POINTS THAT EXCEED A SET"
- 4640 [153]"LIMIT.":[153]
- 4650 [153]" THIS MODULE IS USED TO ELIMINATE STRAY"
- 4660 [153]"VALUES THAT SOMETIMES ARISE FROM NOT"
- 4670 [153]"PRESSING ON THE TABLET HARD ENOUGH.":[153]
- 4680 [153]" YOU WILL NORMALLY NOT CALL THIS ROUTINE";
- 4690 [153]"FOR INPUT DIRECTLY. YOU SHOULD CALL"
- 4700 [153]"'SMOOTH' INSTEAD.":[153]
- 4710 [153]" THE FOLLOWING IS A SLOW SIMULATION OF"
- 4720 [153]"WHAT REALLY HAPPENS VERY RAPIDLY WITHIN"
- 4730 [153]"THE ASSEMBLY CODE.":[153]
- 4740 [153]:[153]:[153]"PRESS LEFT BUTTON TO CONTINUE"
- 4750 [141] 21900:[139] SW[178]0 [167] 4750
- 4760 [142]
- 4770 :
- 4780 [143]***********FILTER***************
- 4790 :
- 4800 [153][199](147):[153]" KOALAPAD FILTER":[153]:[153]
- 4810 [153]" WHAT LIMIT DO YOU WANT TO SET?":[153]:[153]:[153]
- 4820 [153]" SLIDE YOUR FINGER HORIZONTALLY ON THE"
- 4830 [153]"TABLET UNTIL YOU GET A VALUE YOU WANT,"
- 4840 [153]"THEN CLICK THE LEFT BUTTON.":[153]
- 4850 [153]" TRY SETTING HIGH AND LOW VALUES, AND "
- 4860 [153]"SEE WHAT HAPPENS AS YOU MOVE QUICKLY OR"
- 4870 [153]"SLOWLY."
- 4880 [153]:[153]:[153]:[153]:[153]:[153]
- 4890 [153]" CLICK THE LEFT BUTTON TO CONTINUE..."
- 4900 [153]"ONONONONONONONONONONONONONONONONON"
- 4910 [158] SM
- 4920 FV[178][194](SX)[171]8:[139] FV[179][178]1 [167] FV[178]1
- 4930 [153]," ";FV;
- 4940 [129] BB[178]1 [164] 60:[130]
- 4950 [129]BB[178][185](1) [164]1 [169][171]1:[153]"CMD CMD";:[130]
- 4960 [141] 21900:[139] SW[178]0 [167] 4910
- 4970 [151] ER,FV
- 4980 [142]
- 4990 :
- 6000 [143] ********************************
- 6010 [143] * KOALAPAD PAD LOCK (PADLOK) *
- 6020 [143] ********************************
- 6030 [143]
- 6040 :
- 6050 [143] NORMALLY THE TABLET RETURNS TO THE UPPER LEFT CORNER VALUES WHEN YOU
- 6060 [143] * REMOVE YOUR FINGER. THIS ROUTINE LOCKS THE PAD TO THE LAST POINT *
- 6070 [143] * WHERE PRESSURE WAS APPLIED. THE LOCKED VALUES ARE IN 49648 (X) AND *
- 6080 [143] * 49649 (Y). THE PAD LOCKS OUT THE FIRST VALUES IT READS IN FROM THE *
- 6090 [143] * PAD WHEN THE ROUTINE IS FIRST RUN. THESE MAY BE RESET BY POKING *
- 6100 [143] * 49650 (MINX) AND 49651 (MINY). *
- 6110 :
- 6120 [143]
- 6130 RX[178]49152:RY[178]49154 :[143] RAW X AND Y
- 6140 LX[178]49163:LY[178]49164 :[143] LOCKED X AND Y
- 6150 TX[178]49165:TY[178]49166 :[143] MINIMUM X AND Y
- 6160 RP[178]49162 :[143] RIGHT BUTTON
- 6170 PA[178]49343 :[143] START OF PADLOCK ROUTINE
- 6180 [143]
- 6190 [143] PRINT TITLES ON SCREEN
- 6200 [143]
- 6210 [151] CS,7:[153][199](144):[151] CB,15
- 6220 [141] 6520
- 6230 [145] SW [137] 6240,1060,6240,1060,1060,9000
- 6240 [153][199](147):[153]:[153]" KOALAPAD LOCK"
- 6250 [153]:[153]:[153]:[153]" RAW X RAW Y"
- 6260 [153]:[153]:[153]:[153]:[153]" LOCKED X LOCKED Y"
- 6270 [153]:[153]:[153]:[153]:[153]:[153]:[153]:[153]:[153]:[153]:[153]
- 6280 [153]"TO EXIT, PRESS LEFT BUTTON"
- 6290 [143]
- 6300 [143] READ IN PAD DATA
- 6310 [143]
- 6320 [158] PA :[143] LOCK PAD DATA
- 6330 X[178][194](RX):Y[178][194](RY) :[143] GET RAW X AND Y
- 6340 DX[178][194](LX):DY[178][194](LY) :[143] GET LOCKED X AND Y
- 6350 V2[178][194](B2) :[143] READ RIGHT BUTTON
- 6360 [153] [199](19):[151] 214,7:[153] :[143] ERASE LINE 7
- 6370 [153]" "
- 6380 [153] [199](19):[151] 214,7:[153] :[143] DISPLAY RAX X
- 6390 [153]," ";X
- 6400 [153] [199](19):[151] 214,7:[153] :[143] DISPLAY RAW Y
- 6410 [153],," ";Y
- 6420 [153] [199](19):[151] 214,12:[153] :[143] ERASE LINE 12
- 6430 [153]" "
- 6440 [153] [199](19):[151] 214,12:[153] :[143] DISPLAY LOCKED X
- 6450 [153]," ";DX
- 6460 [153] [199](19):[151] 214,12:[153] :[143] DISPLAY LOCKED Y
- 6470 [153],," ";DY
- 6480 [141] 21900
- 6490 [145] SW [137] 1060,6190,1060,6190,1000,9000
- 6500 [203] [164] 6320:[143] READ IN MORE DATA
- 6510 :
- 6520 [143]***********INSTRUCTIONS*********
- 6530 [143]
- 6540 [153][199](147):[153]" TABLET LOCK":[153]:[153]
- 6550 [153]" THIS MODULE REMEMBERS OLD X AND Y "
- 6560 [153]"VALUES WHENEVER YOU LIFT YOUR FINGER OR"
- 6570 [153]"STYLUS. IT LETS YOU OPERATE THE TABLET"
- 6580 [153]"WITH ONE HAND!!!":[153]
- 6590 [153]" LOCK IS AUTOMATICALLY CALLED BY SMOOTH,";
- 6600 [153]"BUT CAN BE CALLED INDEPENDENTLY. MOST"
- 6610 [153]"OF THE TIME YOU WILL CALL SMOOTH.":[153]
- 6620 [153]" WITHOUT LOCK THE CURSOR WILL RETURN TO"
- 6630 [153]"THE UPPER LEFT HAND CORNER." :[153]:[153]:[153]:[153]:[153]
- 6640 [153]:[153]:[153]:[153]"PRESS LEFT BUTTON TO CONTINUE"
- 6650 [141] 21900:[139] SW[178]0 [167] 6650
- 6660 [142]
- 6670 :
- 7000 [143]********************************
- 7005 [143]* KOALAPAD SMOOTHING ROUTINE *
- 7010 [143]********************************
- 7015 [143]
- 7020 :
- 7025 [143]* THIS ROUTINE APPLIES A PASCAL SMOOTHING FUNCTION TO THE TABLET. *
- 7030 [143]* THE ROUTINE ASKS FOR THE LEVEL OF SMOOTHING DESIRED AND RETURNS *
- 7035 [143]* SMOOTHED X,Y. THE PROGRAM DISPLAYS THE X & Y VALUES, THE WEIGHTS, [144]
- 7040 [143]* THE PRODUCTS, THE TOTALS, AND THE SMOOTHED VALUES. *
- 7045 :
- 7050 [143] THIS BASIC PROGRAM IS A SLOW SIMULATION OF WHAT ACTUALLY HAPPENS
- 7055 [143] VERY RAPIDLY IN THE MACHINE CODE MODULE.
- 7060 :
- 7065 :
- 7070 [143]
- 7075 [143] FIRST INITIALIZE ALL VALUES
- 7080 [143]
- 7085 SMOOTH[178]49340:[143] SMOOTH ROUTINE
- 7090 [151] LO,0:[143] UNLOCK THE CURSOR
- 7095 [151] LE,6:[143] SET SMOOTHING AT LEVEL 6
- 7100 [129]I[178]0 [164] 6
- 7105 [158] SM
- 7110 PX(I)[178][194](FX):PY(I)[178][194](FY)
- 7115 [130] I
- 7120 SX[178]49196:SY[178]49197:[143] SMOOTHED VALUES
- 7125 LEVEL[178]49198:[143] SET LEVEL
- 7130 LOCKST[178]49199:[143] LOCK CURSOR
- 7135 [151] LO,0:[143] FREE CURSOR
- 7140 [151] CS,0:[151] CB,11:[153][199](159)
- 7145 [141] 7420
- 7150 [145] SW [137] 7155,1000,7155,1000,1000,9000
- 7155 [153][199](147):[151]214,20:[153]:[153]"PRESS LEFT BUTTON TO CHOOSE LEVEL."
- 7160 [153]:[153]"TO RESET LEVEL,HOLDWAIT RIGHT BUTTON."
- 7165 [153]"TO END,HOLDWAIT LEFT BUTTON."
- 7170 [153]"":[153]" SMOOTH "
- 7175 [153]:[153]:[153]
- 7180 [153]" LEVEL OF SMOOTHING (0-6) ";
- 7185 [151]LE,0
- 7190 [151] LO,1
- 7195 [158] PA
- 7200 LS[178][181]([194](FX)[173]38):[153]LS;:[129]BB[178]1[164]50:[130]
- 7205 [129] BB[178][185](0) [164] 27 [169][171]1:[153]"CMD CMD";:[130]
- 7210 [139] [194](LP)[178]1 [167] 7230
- 7215 [141] 21900
- 7220 [145] SW [137] 7230,7000,7230,7000,1000,9000
- 7225 [137]7195
- 7230 [153]LS;
- 7232 [153]:[153]:[153]
- 7233 [153][199](19):[151] 214,19:[153]:[153]" "
- 7234 [153][199](19):[151] 214,7:[153]
- 7235 [151] LO,0
- 7240 [151] LE,LS
- 7245 [129] BB[178]1 [164] 10:[153]" ":[130]
- 7250 [153]"ONONONONONONONONONONON"
- 7255 [158] SM
- 7260 XX[178][194](SX):YY[178][194](SY)
- 7265 F2[178]0:F1[178]0
- 7270 [129]I[178]6 [164] 1 [169] [171]1
- 7275 PX(I)[178]PX(I[171]1):PY(I)[178]PY(I[171]1)
- 7280 [130] I
- 7285 PX(0)[178][194](FX):PY(0)[178][194](FY)
- 7290 :
- 7295 [143] UPDATE NEW SMOOTHING VALUES
- 7300 [129]I[178] 0 [164] LS
- 7305 [158] PE
- 7310 [139] [194](LP)[178]1 [167] F1[178]1
- 7315 [139] [194](B2)[178]1 [167] F2[178]1
- 7320 [161] QQ$:[139] QQ$[178]"" [167] 7335
- 7325 [139] [198](QQ$)[178]136 [167] 9000
- 7335 [153]" CURRENT DATA";I;:[129]J[178]15[164] 35:[153]" ";:[130] J
- 7340 [153][163]15);:[129]J[178]1 [164] 35:[153]"CMD";:[130] J
- 7345 [153],,PX(I),PY(I)
- 7350 [130] I
- 7355 :
- 7360 [153]" "
- 7365 [153]" "
- 7370 [153][163]15);:[129]J[178]15 [164] 35:[153]" ";:[130]
- 7375 [153][163]15);:[129]J[178]1 [164] 35:[153]"CMD";:[130]
- 7380 [153]"SMOOTHED DATA",XX,YY
- 7385 [139] [194](LP)[178]1 [167] F1[178]1
- 7390 [139] [194](RP)[178]1 [167] F2[178]1
- 7395 [139] F1[178]1 [167] 1060
- 7400 [139] F2[178]1 [167] [151] 214,2:[137] 7175
- 7405 [129] J[178]1 [164] LS[170]4:[153]"ON";:[130]J
- 7410 [137] 7255
- 7415 [128]
- 7420 [143]************INSTRUCTIONS*********
- 7425 [143]
- 7430 [153][199](147):[153]" SMOOTH":[153]:[153]
- 7435 [153]" THIS 'SMOOTHING TOOL' KEEPS SEVERAL "
- 7440 [153]"RECENT VALUES OF X AND Y DATA, AND "
- 7445 [153]"COMPUTES A 'WEIGHTED MOVING AVERAGE.'":[153]
- 7450 [153]" THIS IS THE MAIN ROUTINE THAT YOU WILL"
- 7455 [153]"CALL ALL THE TIME TO GET DATA FROM THE"
- 7460 [153]"TABLET.":[153]
- 7465 [153]" SMOOTHING IS USED IN HI-RESOLUTION"
- 7470 [153]"DRAWING, AND FOR MOVING A CURSOR.":[153]
- 7475 [153]" IN THE FOLLOWING DEMO, PICK A 'LEVEL'"
- 7480 [153]"OF SMOOTHING (HOW MANY RECENT VALUES TO"
- 7485 [153]"KEEP), WATCH NEW VALUES MOVE THROUGH"
- 7490 [153]"THE LIST, AND NOTE THE EFFECT ON THE"
- 7495 [153]"FINAL OUTPUT.":[153]
- 7500 [153]:[153]:[153]"PRESS LEFT BUTTON TO CONTINUE"
- 7505 [141] 21900:[139] SW[178]0 [167] 7505
- 7510 [142]
- 7515 :
- 8000 [151] CS,1:[153][199](152):[151] CB,7
- 8005 [143]********************************
- 8010 [143]* TABLET SCALING ROUTINE *
- 8015 [143]********************************
- 8020 [143]
- 8025 :
- 8030 [143]* THIS ROUTINE WILL SCALE THE TABLET UP TO A RANGE OF 0-510. FIRST *
- 8035 [143]* YOU MUST SPECIFY THE ACTIVE MINIMUM AND MAXIMUM POINTS. THEN YOU *
- 8040 [143]* INPUT THE DESIRED START AND FINISH VALUES FOR THE TABLET. THE PAD *
- 8045 [143]* WILL THEN OUTPUT NEWX, NEWY, NEWXHI, AND NEWYHI. *
- 8050 :
- 8055 [143]
- 8060 [143] FIRST INITIALIZE ALL VALUES
- 8065 [151] LO,0:[151] LE,0
- 8070 [143]
- 8075 [141] 8490
- 8080 [145] SW [137] 8085,1000,8085,1000,1000,9000
- 8085 [153][199](147):[153]" SCALE "
- 8090 [153]:[153]
- 8095 [153]"FIRST SPECIFY 'ACTIVE' PAD AREA":[153]
- 8100 [153]"MINIMUM X VALUE (1-254) : CMDCMDCMDCMD";:[141] 30000:S3[178]RN
- 8105 [139] S3[178]0 [167] [153]"ON":[137]8100
- 8110 [139] S3[177]254 [167] [153]"ON":[137] 8100
- 8115 [153]
- 8120 [153]"MINIMUM Y VALUE (1-254) : CMDCMDCMDCMD";:[141] 30000:S4[178]RN
- 8125 [139] S4[178]0 [167] [153]"ON":[137] 8120
- 8130 [139] S4[177]254 [167] [153]"ON":[137] 8120
- 8135 [153]:[153]:[153]"MAX X,Y MUST BE LARGER THAN MIN X,Y":[153]
- 8140 [153]"MAXIMUM X VALUE (2-255) : CMDCMDCMDCMD";:[141] 30000:L1[178]RN
- 8145 [139] L1[179][178]S3 [167][153]"ON":[137] 8140
- 8150 [139] L1[177]255 [167][153]"ON":[137] 8140
- 8155 [153]
- 8160 [153]"MAXIMUM Y VALUE (2-255) : CMDCMDCMDCMD";:[141] 30000:L2[178]RN
- 8165 [139] L2[179][178]S4 [167] [153]"ON":[137] 8160
- 8170 [139] L2[177]255 [167] [153]"ON":[137] 8160
- 8175 [153]:[153]
- 8180 [153]"SPECIFY SCALING START AND FINISH POINTS"
- 8185 [153]
- 8190 [153]"X STARTING VALUE (0-509) : CMDCMDCMDCMD";:[141]30000:XA[178]RN
- 8195 [139] XA[177]509 [167] [153]"ON":[137] 8190
- 8200 [153]
- 8205 [153]"Y STARTING VALUE (0-509) : CMDCMDCMDCMD";:[141] 30000:YA[178]RN
- 8210 [139] YA[177]509 [167] [153]"ON":[137] 8205
- 8215 [153]:[153]:[153]"FINISH X,Y MUST EXCEED START X,Y.":[153]
- 8220 [153]"X FINISH VALUE (1-510) : CMDCMDCMDCMD";:[141] 30000:XB[178]RN
- 8225 [139] XB[179][178]XA [167] [153]"ON":[137] 8220
- 8230 [139] XB[177]510 [167] [153]"ON":[137] 8220
- 8235 [153]
- 8240 [153]"Y FINISH VALUE (1-510) : CMDCMDCMDCMD";:[141] 30000:YB[178]RN
- 8245 [139] YB[179][178]YA [167] [153]"ON":[137] 8240
- 8250 [139] YB[177]510 [167] [153]"ON":[137] 8240
- 8255 [143]
- 8260 :
- 8265 [143] NOW COMPUTE AND STORE THESE VALUES
- 8270 [143]
- 8275 [151] S1,S3:[151] S2,S4
- 8280 [151] M1,L1:[151] M2,L2
- 8285 [151] H1,0:[151] H2,0
- 8290 [151] H3,0:[151] H4,0
- 8295 [139] XA[177]255 [167] [151] H1,1:XA[178]XA[171]256
- 8300 [151] XS,XA
- 8305 [139] YA[177]255 [167] [151] H2,1:YA[178]YA[171]256
- 8310 [151] YS,YA
- 8315 [139] XB[177]255 [167] [151] H3,1:XB[178]XB[171]256
- 8320 [151] XF,XB
- 8325 [139] YB[177]255 [167] [151] H4,1:YB[178]YB[171]256
- 8330 [151] YF,YB
- 8335 [143]
- 8340 [143] NOW SET ALL PREVIOUS VALUES TO ZERO
- 8345 [143]
- 8350 [151] XN,0:[151] XH,0
- 8355 [151] YN,0:[151] YH,0
- 8360 [143]
- 8365 [143] NOW SET UP THE DISPLAY SCREEN
- 8370 [143]
- 8375 [153][199](147):[153]" SCALE "
- 8380 [153]:[153]:[153]:[153]
- 8385 [153]" NEW X NEW Y"
- 8390 [153]:[153]:[153]:[153]:[153]:[153]:[153]
- 8395 [153]:[153]:[153]:[153]:[153]:[153]
- 8400 [153]"PRESS RIGHT BUTTON TO RESTART"
- 8405 [153]:[153]"PRESS LEFT BUTTON TO QUIT"
- 8410 [143]
- 8415 [143] NOW RUN ROUTINE AND CALCULATE AND DISPLAY VALUES
- 8420 [143]
- 8425 [158] SM
- 8430 [158] SC
- 8435 NX[178][194](XN):NY[178][194](YN)
- 8440 HX[178][194](XH):HY[178][194](YH)
- 8445 DX[178]256[172]HX[170]NX
- 8450 DY[178]256[172]HY[170]NY
- 8455 [153][199](19):[151] 214,8:[153]
- 8460 [153]" CMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
- 8465 [153][163]10);DX;[163]25);DY
- 8470 [141] 21900
- 8475 [145] SW [137] 1000,8000,1000,8000,1000,9000
- 8480 [137] 8425
- 8485 :
- 8490 [143]*********INSTRUCTIONS***********
- 8495 [143]
- 8500 [153][199](147):[153]" TABLET SCALING ":[153]:[153]
- 8505 [153]" SCALING IS A GENERAL PURPOSE ROUTINE"
- 8510 [153]"WHICH TAKES X AND Y DATA FROM THE PAD"
- 8515 [153]"AND GIVES IT A NEW RANGE.":[153]
- 8520 [153]"FIRST YOU MUST SPECIFY THE MINIMUM AND"
- 8525 [153]"MAXIMUM VALUES OF YOUR PAD. THEN YOU"
- 8530 [153]"SPECIFY THE NEW RANGE (FROM 0-510) FOR"
- 8535 [153]"X AND Y. THE OUTPUT OF THIS ROUTINE "
- 8540 [153]"WILL BE X AND Y WITH THEIR NEW RANGE.":[153]
- 8545 [153]" YOU MUST CALL SMOOTHING FIRST IN ORDER"
- 8550 [153]"TO GET YOUR UNSCALED X AND Y DATA.":[153]
- 8555 [153]" THIS ROUTINE IS VERY USEFUL FOR "
- 8560 [153]"SCREEN CURSORS AND CREATING DISTINCT"
- 8565 [153]"TABLET AREAS.":[153]:[153]
- 8570 [153]" PRESS LEFT BUTTON TO CONTINUE"
- 8575 [141] 21900:[139]SW[178]0 [167] 8575
- 8580 [142]
- 8585 :
- 9000 [143]************* LOAD MAIN MENU*************
- 9005 [156]
- 9010 [159] 2,8,2,"0:SPRITE.UPARROW,S,R":[143] CHECK DISK
- 9015 [160]2
- 9020 [159] 15,8,15
- 9025 [132]15,A$,B$,C$,D$:[143] READ ERROR
- 9030 [139] [197](A$)[178]0 [167] 9080:[143] NO ERROR
- 9035 [153]"LOAD":[153]:[153]:[153]:[153]:[153]:[153]" ";B$
- 9040 [129]I[178]1 [164]1000:[130]I:[143] PRINT ERROR
- 9050 [137]1000
- 9080 [156]
- 9085 [153]"LOAD":[151]214,8:[153]:[153]" LOADING MAIN MENU..."
- 9090 [147]"MENU",8
- 21000 :
- 21200 [143] ************SET UPS************
- 21202 Z5[178]45:Z6[178]46:Z7[178]47:Z8[178]48:Z9[178]49:Z0[178]50:[143] ZERO PAGE BASIC POINTERS
- 21204 CBRDER[178]53280:CSCREEN[178]53281
- 21205 [143] ASSEMBLY ROUTINE JUMP ADDRESS NAMES
- 21208 TABRAW[178]49328:DEBOUNCE[178]49331:FILTER[178]49334:PERFECT[178]49337
- 21210 SMOOTH[178]49340:PADLOCK[178]49343:SCALE[178]49346:TEXTCR[178]49349:SPRITE[178]49352
- 21215 PLTDOT[178]49355:SETSCL[178]49358:TURNUN[178]49361:KLRCOL[178]49364:TRNUFF[178]49367
- 21220 LINE[178]49382:BOX[178]49385:RDIUS[178]49388:CIRCLE[178]49391
- 21222 KOALAPICTURE[178]49394
- 21223 :
- 21225 [143] VARIABLE NAMES
- 21227 RX[178]49152:RY[178]49154
- 21230 B1[178]49156:B2[178]49157:LDBOUNCE[178]49159:RDBOUNCE[178]49160:LPRESS[178]49161:RPRESS[178]49162
- 21231 LX[178]49163:LY[178]49164:TX[178]49165:TY[178]49166
- 21232 FX[178]49168:FY[178]49169:UX[178]49172:UY[178]49173:ERRUR[178]49174:M1[178]49175:M2[178]49176
- 21235 SX[178]49196:SY[178]49197:LEVEL[178]49198:LOCKST[178]49199
- 21238 XH[178]49186:S1[178]49187:S2[178]49188:YH[178]49190
- 21240 XS[178]49177:YS[178]49179:XF[178]49181:YF[178]49183:XNW[178]49185:YNW[178]49189
- 21245 H1[178]49178:H2[178]49180:H3[178]49182:H4[178]49184
- 21250 BANKA[178]49191:SSTART[178]49194
- 21255 SFLAG[178]49200:SNABLE[178]53269:SKOLR[178]53287:XLOSP[178]53248:XISP[178]53264:YLOSP[178]53249
- 21260 MCM[178]49205:COLR[178]49206:XR[178]49208
- 21265 X1[178]49209:X2[178]49210:Y1[178]49211:Y2[178]49212:RADIUS[178]49213
- 21266 T3[178]49239
- 21270 [142]
- 21280 :
- 21900 [143]****CHECK SWITCHES**************
- 21905 SW[178]0
- 21910 [158] PE
- 21920 [139] [194](LP)[178]1 [167] SW[178]1:[142]
- 21930 [139] [194](RP)[178]1 [167] SW[178]2:[142]
- 21931 [139] [194](198)[178]0 [167] [142]
- 21935 :
- 21938 [129] I9[178]1[164] [194](198)
- 21940 [161] QQ$
- 21942 [130] I9
- 21949 :
- 21965 [139] QQ$[178][199](136) [167] SW[178]6:[143] CHECK F7
- 21966 [151] 198,0
- 21969 :
- 21970 [142]
- 21980 :
- 29000 [143] 3-DIGIT KEYBOARD LOCKOUT ROUTINE.(NUMBERS,DELETE,R/S,RETURN ONLY)
- 30000 QN[178]1:TN$[178]""
- 30005 [161] QQ$:[139]QQ$[178]"" [167] 30005
- 30010 AV[178][198](QQ$):[139]AV[178]13[167]30200
- 30011 [139](AV[178]20)[167]30100
- 30012 [139]AV[178]136 [167] 9000
- 30015 [139](AV[179]48)[176](AV[177]57)[167]30005
- 30016 [139] QN[178]4 [167] 30005
- 30020 NU$[178][199](AV):QN[178]QN[170]1
- 30025 TN$[178]TN$[170]NU$
- 30030 [153][199](AV);
- 30040 [137]30005
- 30100 [139] QN[178]1 [167] 30005
- 30110 QN[178]QN[171]1:TN$[178][200](TN$,QN[171]1)
- 30120 [137]30030
- 30200 RN[178][197](TN$)
- 30210 [142]
- 40000 [159]15,8,15:[152]15,"S0:BASICS":[148]"BASICS",8
-